Algebraic geometric code adapted to error bursts

ABSTRACT

The present invention concerns channel codes particularly well adapted to transmission in channels in which errors tend to occur in bursts. Moreover, the codes according to one embodiment of the invention using an algebraic geometric curve are easy to decode and have a relatively high minimum distance. The invention also relates to the corresponding encoding and decoding methods, as well as the devices and apparatuses adapted to implement those methods. Application is in particular to mass storage, and to systems of communication by OFDM.

The present invention concerns communication systems in which, in orderto improve the fidelity of the transmission, the data to be transmittedare subjected to a channel encoding. More particularly it relates bothto encoding methods and to decoding methods, and also to the devices andapparatuses adapted to implement those methods.

It will be recalled that so-called “channel” encoding consists, when the“codewords” sent to the receiver are formed, of introducing a certainamount of redundancy in the data to be transmitted. More particularly,by means of each codeword, the information is transmitted that isinitially contained in a predetermined number k of symbols taken from an“alphabet” of finite size q; on the basis of these k informationsymbols, calculation is made of a number n of symbols belonging to thatalphabet, so as to form codewords v=[v₁,v₂, . . . v_(n)]. The set ofcodewords obtained when each information symbol takes some value in thealphabet constitutes a sort of dictionary referred to as a “code” of“dimension” k and “length” n.

When the size q of the alphabet is a power of a prime number, thealphabet can be given the structure of a so-called “Galois field”denoted F_(q), of which the non-zero elements may conveniently beidentified as each being equal to γ^(i−1) for a corresponding value ofi, where i=1, . . . , q−1, and where γ is an element of F_(q) chosenfrom the so-called “primitive” elements of that field. Where thealphabet is a Galois field, certain codes may conveniently be associatedwith a matrix H of dimension (n−k)×n known as a “parity matrix”, definedover F_(q): a given word v of length n is a codeword if, and only if, itsatisfies the relationship: H·v ^(T)=0 (where the exponent T indicatesthe transposition); the code is then said to be “orthogonal” to thematrix H. These codes, which are termed “linear codes”, will be the onlycodes considered further on.

At the receiver, the associated decoding method then judiciously usesthis redundancy to detect any transmission errors and if possible tocorrect them. There is a transmission error if the difference e betweena received word r and the corresponding codeword v sent by thetransmitter is non-zero.

More particularly, the decoding is carried out in two main steps.

The first step consists of associating an “associated codeword”{circumflex over (v)}, which is an estimated value of the codeword v,with the received word r. To do this, the decoder first of allcalculates the vector of “error syndromes” H·r ^(T)=H·e ^(T). If thesyndromes are all zero, it is assumed that no transmission error hasoccurred, and the “associated codeword” {circumflex over (v)} will thensimply be taken to be equal to the received word r. If that is not thecase, it is thereby deduced that certain symbols in the received wordare erroneous, and a correction algorithm is then implemented which isadapted to estimate the value of the error e; the algorithm will thusprovide an estimated value ê such that {circumflex over (v)}=r−ê is acodeword, which will then constitute the “associated codeword”.

The second step simply consists in reversing the encoding method. In theideal situation in which all the transmission errors have beencorrected, the initial information symbols are thereby recovered.

The purpose of an error correction algorithm is to associate with thereceived word the codeword situated at the shortest Hamming distancefrom that received word, the “Hamming distance” being, by definition,the number of places where two words of the same length have a differentsymbol. The shortest Hamming distance between two different codewords ofa code is termed the “minimum distance” d of that code. This is animportant parameter of the code. More particularly, it is in principlepossible to find the position of the possible errors in a received word,and to provide the correct replacement symbol (i.e. that is identical tothat sent by the transmitter) for each of those positions, each time thenumber of erroneous positions is at most equal to INT[(d−1)/2] (where“INT” designates the integer part) for a code of minimum distance d (forcertain error configurations, it is sometimes even possible to achievebetter). However, in all cases, the concern is not with a possibility inprinciple, since it is often difficult to develop a decoding algorithmachieving such performance. It should also be noted that, when thechosen algorithm manages to propose a correction for the received word,that correction is all the more reliable (at least, for mosttransmission channels) the smaller the number of positions it concerns.

Among known codes, “Reed-Solomon” codes may be cited, which are reputedfor their efficiency (for a definition of Reed-Solomon codes, referencemay be made to the work by R. E. Blahut entitled “Theory and practice oferror-control codes”, Addison-Wesley, Reading, Mass., 1983). These codesare defined over F_(q), and their minimum distance d is equal to(n−k+1). To decode them, a so-called “Berlekamp-Massey” algorithm isusually employed for the detection of the erroneous positions in areceived word, and a so-called “Forney” algorithm for the correction ofthe corresponding erroneous symbols (these algorithms are described inthe work mentioned above).

For modern information carriers, for example on hard disks, CD's(“compact discs”) and DVD's (“digital video discs”), it is sought toincrease the density of information. When such a carrier is affected bya physical defect such as a scratch, a high number of informationsymbols may be rendered unreadable. This problem may nevertheless beremedied by using a very long code. However, Reed-Solomon codes have theparticularity that the length n of the codewords is necessarily lessthan or equal to the size q of the alphabet of the symbols.Consequently, if a Reed-Solomon code is desired having codewords ofgreat length, high values of q must be envisaged, which leads to costlyimplementations in terms of calculation and storage in memory. Moreover,high values of q are sometimes ill-adapted to the technical applicationenvisaged. For this reason, it has been sought to build codes whichnaturally provide words of greater length than Reed-Solomon codes.

In particular so-called “algebraic geometric codes” or “Goppa geometriccodes” have recently been proposed (see for example “Algebraic GeometricCodes” by par J. H. van Lint, in “Coding Theory and Design Theory”1^(st) part, IMA Volumes Math. Appl., volume 21, Springer-Verlag,Berlin, 1990). These codes, also defined over a Galois field F_(q), areconstructed on the basis of an algebraic equation with two unknowns Xand Y. The solutions to this algebraic equation may be considered as thecoordinates (x,y) of points on an “algebraic curve”. To define a paritymatrix, an ordered set is first of all constituted, termed a “locatingset”, based on n such points of which all the coordinates are finite;then each row of the parity matrix is obtained by calculating the valueof one judiciously chosen function of X and Y for each element of thatlocating set. An algebraic geometric code of length n is thus obtained.

An important parameter of such a curve is its “genus” g. In theparticular case where the curve is a simple straight line (the genus gis then zero), the algebraic geometric code reduces to a Reed-Solomoncode. In certain cases, algebraic geometric codes make it possible toachieve a length equal to (q+2g√{square root over (q)}), which may bevery high; for example, with an alphabet length of 256 and a genus equalto 120, codewords are obtained of length 4096. It should moreover benoted that algebraic geometric codes have a minimum distance d greaterthan or equal to (n−k+1−g).

Algebraic geometric codes are advantageous as to their minimum distance,and, as has been said, as to the length of the codewords, but they havethe drawback of requiring decoding algorithms that are rather complex,and thus rather expensive in terms of equipment (software and/orhardware) and processing time. This complexity is in fact greater orlesser according to the algorithm considered, a greater complexity beingin principle the price to pay for increasing the error correctioncapacity of the decoder. (see for example the article by Tom Hoholdt andRuud Pellikaan entitled “On the Decoding of Algebraic-Geometric Codes”,IEEE Trans. Inform. Theory, vol. 41 no. 6, pages 1589 to 1614, Nov.1995).

Like all codes, algebraic geometric codes may be “modified” and/or“shortened”. It is said that a given code C_(mod) is a “modified”version of the code C if there is a square non-singular diagonal matrixA such that each word of C_(mod) is equal to v·A with v being in C. Itis said that a given code is a “shortened” version of the code C if itcomprises solely the words of C of which, for a number k ofpredetermined positions, the components are all zero: as these positionsare known to the receiver, their transmission can be obviated, such thatthe length of the shortened code is (n−R). In particular, it is commonto shorten an algebraic geometric code by removing from the locatingset, where possible, one or more points for which the x coordinate iszero.

The object of the invention, inter alia, is to provide a code making itpossible to correct a relatively high number of transmission errors inan economic manner, particularly where transmission errors have atendency to occur in “error bursts” during the transmission of encodedsymbols (it should be recalled that an “error burst” is a series oferrors of which the frequency is high with respect to the mean frequencyof errors over the channel considered; such error bursts are observedboth in certain radio transmissions and in certain recordings on harddisk.)

Thus the creators of the present invention wondered whether, ondetermining the properties of the code used to transmit information overa given channel, it might be possible to take into account thecharacteristics of the channel envisaged to choose a well-adapted code.In particular, said creators considered the channels in which the datato transmit are grouped in blocks of predetermined length, and in whichthe transmission error rate per item of data transmitted is essentiallyconstant within the same block; on other words, such channels arephysically characterized in that, most often, transmission “noises”affect the data per block, and may affect different blocks differently;thus, for certain blocks, the probability of error can be very low oreven zero, but for certain other blocks the probability of error can bevery high and even close to (q−1)/q.

For such channels, it is advantageous to use a communication system withmultiple carriers known as “OFDM” (which stands for “OrthogonalFrequency Division Multiplexing”). OFDM is particularly useful inenvironments in which the received signal is the sum of multipletransmitted signals which have undergone various reflections, and thusvarious phase shifts and attenuations, over their path betweentransmitter and receiver. Interference effects result from this which itis necessary to correct in order to guarantee good reception quality.OFDM achieves this objective by dividing the total bandwidth into acertain number of portions allocated to “subcarriers” of differentfrequency, such that the OFDM signal results from the superposition ofthe individual signals, which are mutually orthogonal, associated withthose subcarriers.

More particularly, the data to be transmitted are first of allexpressed, in conventional manner, in the form of “elementary symbols”,that is to say complex numbers defined in accordance with a certainmodulation method, for example of phase (“Phase Shift Keying” or “PSK”),or of both phase and amplitude in combination (“Quadrature AmplitudeModulation” or “QAM”). In an OFDM system, those elementary symbols arethen taken P by P (where P is a predetermined integer) and converted, bymeans of an IDFT (Inverse Discrete Fourier Transform) into a series of K(where K is a predetermined integer) complex numbers c_(r)(r=0, . . . ,K−1) representing as many “carriers”. Finally, the real part of thesignal is transmitted defined by:

$\begin{matrix}{{{c(t)} \equiv {{\exp\left( {{- {j\omega}}\; t} \right)}{\sum\limits_{r = 0}^{K - 1}\;{c_{r}{h\left( {t - {rT}} \right)}}}}},} & (1)\end{matrix}$where the function h(t) is, by definition, equal to 1 in the interval0≦t≦T. and zero outside that interval.

After receiving the modulated signal, a DFT (Discrete Fourier Transform)is implemented which is the inverse of the preceding one, which restoreseach of the individual elementary symbols.

For more details on OFDM, reference may for example be made to the bookby R. van Nee and R. Prasad entitled “OFDM for Wireless MultimediaCommunications” (Artech House, Boston and London, 2000).

Thus the noise affecting the signal c(t) during its transmission overthe channel will globally affect the block of P elementary symbols fromwhich it issues, and consequently the MP corresponding binary elements,where 2^(M) is the cardinal of the modulation constellation.

The present invention thus relates to a channel code adapted to takeadvantage of such a distribution of noise over a transmission channel.At the same time, it is desired for the code to be easy to decode, andto have a relatively high minimum distance.

Thus, according to a first aspect, the invention relates to a method ofencoding information symbols, comprising a step in which a codeword v,of length n and orthogonal to a parity matrix H, is associated withevery block of k information symbols belonging to a Galois field F_(q),where q is an integer greater than 2 and equal to a power of a primenumber. This method of encoding is remarkable in that the element H_(αβ)at position (α, β) (where α=1, . . . , n−k, and β=1, . . . , n) of saidparity matrix H is equal to the value taken by the monomial M_(α) at thepoint P_(β), where

-   -   the monomials M_(α)≡X^(i)Y^(j), where the integers i and j are        positive or zero, are such that if, among those monomials, there        is one at i>0 and arbitrary j, then there is also one at (i−1)        and j, and if there is one at arbitrary i and j>0, then there is        also one at i and (j−1), and    -   said points P_(β) are pairs of non-zero symbols of F_(q) which        have been classified by aggregates:        (x₁,y₁(x₁)), (x₁,y₂(x₁)), . . . , (x₁,y_(λ) ₁ (x₁));        (x₂,y₁(x₂)), (x₂,y₂(x₂)), . . . , (x₂,y_(λ) ₂ (x₂)); . . . ;        (x_(μ),y₁(x_(μ))), (x_(μ),y₂(x_(μ))), . . . , (x_(μ),y_(λ) _(μ)        (x_(μ)))

$\left( {{{with}\mspace{14mu}{\sum\limits_{p = 1}^{\mu}\;\lambda_{p}}} = n} \right).$

Thus, according to the invention, the columns of the parity matrix arearranged by “aggregates”, an “aggregate” being defined as being a set ofpairs of symbols belonging to F_(q) which have a common value for thefirst element of those pairs. Each codeword v being, by definition,orthogonal to the parity matrix, it satisfies:

${\sum\limits_{\beta = 1}^{n}\;{H_{\alpha\beta}\nu_{\beta}}} = 0$(for α=1, . . . , n−k); it will thus be convenient, under the presentinvention, to replace the index β by the corresponding point P_(β)=(x,y)in order to identify a component of the codewords, such that it will bepossible to write:v=[v(x ₁ ,y ₁(x ₁)), . . . v(x ₁ ,y _(λ) ₁ (x ₁)), . . . , v(x _(μ) ,y_(λ) _(μ) (x _(μ)))];furthermore, when components of codewords that are indexed in suchmanner by pairs (x,y) are such that their indexes have a common value x,it is convenient to state that those components form an “aggregate” ofcomponents. As the components belonging to the same aggregate areinserted in adjacent positions in the flow of data to transmit, themethod of encoding according to the invention is particularly efficientfor channels where the errors tend to occur in error bursts, providedthat a method of correcting aggregates is implemented rather than ofcorrecting individual errors. A method of correcting this type ismoreover disclosed further on.

According to particular features applicable when said codewords v aredestined to be transmitted in the form of blocks of predeterminedlength,

-   -   successive codewords v are put end to end so as to form a        continuous chain of data to transmit, and    -   that chain of data is divided up into blocks of said        predetermined length.

In this case, the components of an aggregate will, generally, berepresented in the same data block transmitted; for example, in the caseof OFDM, the components of each aggregate will be represented in thesame interval of time KT.

According to still more particular features applicable when thecodewords are not exactly divisible into blocks, each incomplete blockis completed with a predetermined arbitrary sequence of data.

In a variant form, when the codewords are not exactly divisible intoblocks, each incomplete block is completed by copying the value of thedata situated at a predetermined number of positions of thecorresponding codeword equal to the number of items of data to complete.It will usually be convenient to copy data situated in the sameincomplete block.

Thanks to these provisions, it is possible to accelerate the process oftransmitting blocks, and also to use the supplementary data so insertedfor the purposes of synchronization.

According to particular features, on the one hand, said points P_(β)form part of the solutions to an algebraic equationX ^(b) +c Y ^(a) +Σc _(ij) X ^(i) Y ^(j)=0,where c (≠0) and the c_(ij) are elements of F_(q), a and b are strictlypositive mutually prime integers, and where the sum only applies to theintegers i and j which satisfy a i+b j<a b, and, on the other hand, themaximum power j_(max) of Y in the monomials M_(α) is strictly less thana.

The benefit is thus obtained of the large minimum distance guaranteed bythe algebraic geometric codes.

According to features that are still more particular, on the one hand,said monomials M_(α)=X^(i) Y^(j) satisfy:a i+b j≦m,where m is a predetermined strictly positive integer, and on the otherhandλ(x)≦j _(max)+1for all x=x₁,x₂, . . , x_(μ).

As explained in detail further on, this particular structure of theparity matrix makes it possible to associate with each codeword acertain number of words encoded according to Reed-Solomon. Thecorrection of errors for the latter words will advantageously be simpleand rapid, as is well-known in relation to the algorithms adapted toReed-Solomon codes.

In a complementary manner, according to the same first aspect, theinvention relates to a method of decoding received data, remarkable inthat said received data result from the transmission of encoded dataaccording to any one of the methods of encoding described succinctlyabove.

The received data may in particular result from the transmission of dataencoded in accordance with the method according to the inventionprovided with the still more particular features described above. Inthis case, a wordr≡[r(x ₁ ,y ₁(x ₁), . . . , r(x ₁ ,y _(λ) ₁ (x ₁)), . . . , r(x _(μ) ,y_(λ) _(μ) (x _(μ)))],of length n having been received, and an integer s_(max) satisfyingλ(x)−1≦s _(max) ≦j _(max)for all x=x₁,x₂, . . . , x_(μ) having been predetermined, the decodingmethod, according to particular features, comprises the following steps:for s=0, . . . , s_(max):

-   -   calculating the word        r _(s) ≡[r _(s)(x ₁), r _(s)(x ₂), . . . ,r _(s)(x _(μ))],        of length μ, in which, for x=x₁,x₂, . . . ,x_(μ), the symbol

${r_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{r\left( {x,{y_{i}(x)}} \right)}}}$is erased if at least one of the symbols r(x,y_(i)(x)) is itself erased,and

-   -   calculating the error syndrome vector as σ _(s)≡H^(t(s)) r _(s)        ^(T), where

${H^{t} \equiv \begin{bmatrix}1 & 1 & \ldots & 1 \\x_{1} & x_{2} & \ldots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \ldots & x_{\mu}^{t - 1}\end{bmatrix}},$and where t(s) designates the number of monomials M_(α)=X^(i) Y^(j)having j=s,

-   -   attempting to calculate a word {circumflex over (v)}        ₀≡[{circumflex over (v)}₀(x₁),{circumflex over (v)}₀(x₂), . . .        , {circumflex over (v)}₀(x_(μ))] by correcting the word r ₀        according to the error syndrome vector σ ₀ by means of an error        correction algorithm adapted to take into account erasures,        for s=1, . . . , s_(max)    -   erasing, where the preceding error correction attempt has        succeeded, for all x such that {circumflex over        (v)}_(s−1)(x)≠r_(s−1)(x), the symbols r_(p)(x) for p=s, . . . ,        s_(max), and    -   attempting to calculate a word {circumflex over        (v)}≡[{circumflex over (v)}_(s)(x₁),{circumflex over        (v)}_(s)(x₂), . . . ,{circumflex over (v)}_(s)(x_(μ))] by        correcting the word r _(s) according to the error syndrome        vector σ _(s) by means of an error correction algorithm adapted        to take into account erasures, and    -   calculating, where the above (s_(max)+1) correction attempts        have succeeded, for x=x₁,x₂, . . . ,x_(μ), the symbols        {circumflex over (v)}(x,y_(i)), where i=1, . . . ,λ(x), which        are respectively the estimated values of the transmitted symbols        corresponding to the received symbols r(x, y_(i)), by solving        the system of (s_(max)+1) equations:

${{{\hat{\nu}}_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{\hat{\nu}\left( {x,{y_{i}(x)}} \right)}}}},$for s=0, . . . , s_(max).

As can be seen, this decoding method explicitly manipulates the symbolsreceived by aggregates. It is thus very sensitive to the number ofaggregates of the received word which contain errors, and littlesensitive to the total number of erroneous symbols in the received word.Due to this, the efficiency of the error correction is optimized, oncondition that, for a received word comprising transmission errors,those errors only affect a limited number of aggregates, which isgenerally the case.

An additional advantage of this decoding method, by virtue of theflexibility given by the choice of the parameter s_(max), is thepossibility of U.E.P. (Unequal Error Protection) as explained in detailfurther on.

Moreover, it will be noted that it is easy to generalize the methods ofencoding and decoding succinctly described above in the case in whichthe parity matrix H as described above is replaced by the parity matrixH_(A)=H·A, where A is a non-singular diagonal matrix:

-   -   the word r ^(A)≡r·A⁻¹ is associated with each received word r,    -   to said word r ^(A) a decoding method as succinctly described        above is applied, for the code of which the parity matrix is H,        and    -   if that application results in an estimated value {circumflex        over (v)} ^(A), then {circumflex over (v)}={circumflex over (v)}        ^(A)·A is taken as the estimated value of the transmitted word        corresponding to said received word r.

Similarly, it should be noted that the codewords v described above maybe obtained, in entirely equivalent manner, by two steps instead of one,by commencing with a parity matrix H^(π) obtained by applying anarbitrary permutation π⁻¹ to the columns of a matrix H as succinctlydescribed above: first of all, on the basis of the information symbols,words v ^(π) orthogonal to H^(π) are constructed, then the permutation πis applied to the components of v ^(π), so as to obtain the words vdestined to be transmitted, in which the components belonging to thesame aggregate are adjacent. After receiving the word r corresponding tov, and possible correction of the transmission errors so as to obtain anestimated value {circumflex over (v)}, it suffices to apply thepermutation π⁻¹ to that word {circumflex over (v)} to obtain theestimated value {circumflex over (v)} ^(π) of the word v ^(π).

For the implementation of the invention, it is possible to choose aso-called “hyperelliptic” algebraic code, in which the exponent a of Yis equal to 2. However, from the article (in Japanese) by S. Miuraentitled “Hyperelliptic Codes II” (12^(th) Symposium on the Theory ofInformation and its Applications—SITA '89, Inuyama, Japan, December1989), a decoding method is known which was designed for a family ofcodes also defined over a Galois field F_(q). These codes will bereferred to below as “Miura codes”. These codes are of even length n andare characterized by a parity matrix cleverly chosen so that, to decodea received word, it is possible to apply any decoding algorithm forReed-Solomon code of length n/2 to two words of length n/2 deduced in acertain manner from the received word.

A first family of Miura codes, of length n=2q, is defined by thefollowing parity matrix (in what follows, a primitive element of theGalois field F_(q) will be designated by γ):

${H = \begin{pmatrix}{\overset{\_}{H}}^{2r} & {\overset{\_}{H}}^{2r} \\{{\overset{\_}{H}}^{r}Y_{1}} & {{\overset{\_}{H}}^{r}Y_{2}}\end{pmatrix}},$where

-   -   r is a strictly positive integer,    -   H ^(2r) and H ^(r) are respective embodiments for u=2r and u=r        of the matrix H ^(u) with u lines and q columns defined by H        ^(u) _(ij)=γ^((i−1)(j−1))(1≦i≦u, 1≦j≦q−1), H ^(u Hd iq) =0        (2≦i≦u), and H ^(u) _(1q)=1, and    -   Y₁ and Y₂ are two square matrices of dimension q, proportional        to the identity matrix, and different from each other.

But the drawback of these Miura codes is that their minimum distance,which is equal to (2r+1), is (provided that r is greater than 8) lessthan the minimum distance of certain known algebraic geometric codes ofthe same redundancy (they are codes relying on an “attractive”hyperelliptic equation, i.e. having, whatever the value x of X, exactlytwo solutions (x,y₁) and (x,y₂) in F_(q) and where, furthermore, thesevalues y₁ and y₂ of Y are different from each other).

As explained in the work by R. E. Blahut cited above, it is simpler todecode a Reed-Solomon code of length (q−1) defined over F_(q) than acode of length q, still defined over F_(q). As the decoding of the codesused by the invention relies on decoding algorithms for Reed-Solomoncodes, it is useful, to facilitate the decoding, to have codes shortenedto the length n=2(q−1).

Furthermore, it is possible to define a second family of Miura codes, oflength n=2(q−1), by the following parity matrix:

${H = \begin{pmatrix}H^{2r} & H^{2r} \\{H^{r}Y_{1}} & {H^{r}Y_{2}}\end{pmatrix}},$where

-   -   r is a strictly positive integer,    -   H^(2r)−H^(r) and γ are respective embodiments for u=2r and u=r        of the matrix H^(u) with u lines and (q−1) columns defined by        H^(U) _(ij)=γ^((i−1)(j−1))(1≦i≦u, 1>j>q−1), and    -   Y₁ and Y₂ are two square matrices of dimension (q−1),        proportional to the identity matrix, and different from each        other.

These Miura codes of the second family have the drawback, as for thoseof the first family, that their minimum distance, which is equal to(2r+1), is (provided that r is greater than 8) less than the minimumdistance of known algebraic geometric codes of the same redundancy(which rely on an attractive hyperelliptic code).

By comparison, the code according to the invention, in the particularcase in which, on the one hand, n=2q or n=2(q−1), and in which, on theother hand, n−k=3r for any strictly positive integer r, has similarproperties of “decomposition” in a pair of Reed-Solomon codes as theMiura codes, but may have a greater minimum distance. It can -be shownfor example that the minimum distance of such a code according to theinvention applied to an attractive hyperelliptic equation is equal to(2r+2); it is thus greater by one unit than the minimum distance of thecorresponding Miura code. In a received word, a decoding algorithmadapted for such a code is capable of correcting r aggregates containingerrors (of which the position and value are unknown before applicationof that algorithm), even if the two components of those aggregates areerroneous, except in the case in which certain aggregates are such that,not only the two components of such an aggregate contain an error, butthese two errors are furthermore equal to each other.

According to the same first aspect, the invention also relates to amethod of communication of data in the form of blocks of predeterminedlength. This communication method comprises the following steps:

-   -   a) encoding the data to transmit, in accordance with one of the        methods of encoding succinctly described above,    -   b) transmitting said encoded data blocks by OFDM, and    -   a) decoding the received data, in accordance with one of the        methods of decoding succinctly described above,

The advantages of this method of communication are essentially the sameas those of the corresponding methods of encoding and decodingsuccinctly set out above, with, in addition, the particular advantagesgiven by the OFDM.

According to a second aspect, the invention relates to various devices.

Thus the invention relates firstly to an encoding device comprising aunit for calculating codewords adapted to associate a codeword v oflength n orthogonal to a parity matrix H with any block k of informationsymbols belonging to a Galois field F_(q), where q is an integer greaterthan 2 and equal to a power of a prime number. This encoding device isremarkable in that the element H_(αβ) at position (α, β) (where α=1, . .. , n−k, and β=1, . . . , n) of said parity matrix H is equal to thevalue taken by the monomial M_(α) at the point P_(β), where

-   -   the monomials M_(α)≡X^(i) Y^(j), where the integers i and j are        positive or zero, are such that if, among those monomials, there        is one at i>0 and arbitrary j, then there is also one at (i−1)        and j, and if there is one at arbitrary i and j>0, then there is        also one at i and (j−1), and    -   said points P_(β) are pairs of non-zero symbols of F_(q) which        have been classified by aggregates:        (x₁,y₁(x₁)), (x₁,y₂(x₁)), . . . , (x₁,y_(λ) ₁ (x₁));        (x₂,y₁(x₂)), (x₂,y₂(x₂)), . . . , (x₂,y_(λ) ₂ (x₂)); . . . ;        (x_(μ),y₁(x_(μ))), (x_(μ),y₂(x_(μ))), . . . , (x_(μ),y_(λ) _(μ)        (x_(μ)))

$\left( {{{with}\mspace{14mu}{\sum\limits_{p = 1}^{\mu}\;\lambda_{p}}} = n} \right).$

According to particular features, this encoding device further comprisesa formatting unit adapted to put the successive wordsvend to end so asto form a continuous chain of data to transmit, and to divide up thatchain of data into blocks of predetermined length.

According to still more particular features applicable when thecodewords are not exactly divisible into blocks, said formatting unit iscapable of completing each incomplete block with a predeterminedarbitrary sequence of data.

According to still more particular features applicable when thecodewords are not exactly divisible into blocks, said formatting unit iscapable of completing each incomplete block by copying the value of thedata situated at a predetermined number of positions of thecorresponding codeword equal to the number of items of data to complete.For example these copied data may conveniently be situated in the sameincomplete block.

Secondly, the invention relates to a device for decoding received dataresulting from the transmission of data encoded according to any one ofthe encoding methods succinctly described above. This decoding devicecomprises:

-   -   an error correction unit adapted to correct the transmission        errors of said encoded data, and    -   a unit for calculating information symbols.

Where the received data result from the transmission of data encoded inaccordance with the method according to the invention provided with thestill more particular features described above, a wordr≡[r(x ₁ ,y ₁(x ₁), . . . , r(x ₁ , y _(λ) ₁ (x ₁)), . . . , r(x _(μ) ,y_(λ) _(μ) (x _(μ)))],of length n having been received, and an integer s_(max) satisfyingλ(x)−1≦s _(max) ≦j _(max)for all x=x₁,x₂, . . . ,x_(μ) having been predetermined, said errorcorrection unit is, according to particular features, adapted to:for s=0, . . . ,s_(max):

-   -   calculate the word        r _(s) ≡[r _(s)(x ₁), r _(s)(x ₂), . . . , r _(s)(x _(μ))],        of length μ, in which, for x=x₁, x₂, . . . ,x_(μ), each symbol

${r_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{r\left( {x,{y_{i}(x)}} \right)}}}$is erased if at least one of the symbols r(x,y_(i)(x)) is itself erased,and

-   -   calculate the error syndrome vector σ _(s)≡H^(t(s)) r _(s) ^(T),        where

${H^{t} \equiv \begin{bmatrix}1 & 1 & \cdots & 1 \\x_{1} & x_{2} & \cdots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \cdots & x_{\mu}^{t - 1}\end{bmatrix}},$and where t(s) designates the number of monomials M_(α)=X^(i) Y^(j)having j=s,

-   -   attempt to calculate a word {circumflex over (v)} ₀≡[{circumflex        over (v)}₀(x₁),{circumflex over (v)}₀(x₂), . . . , {circumflex        over (v)}₀(x_(μ))] by correcting the word r ₀ according to the        error syndrome vector σ ₀ by means for an error correction        algorithm adapted to take into account erasures,        for s=1, . . . ,s_(max):    -   erase, where the preceding error correction attempt has        succeeded, for all x such that {circumflex over        (v)}_(s−1)(x)≠r_(s−1)(x), the symbols r_(p)(x) for p=s, . . . ,        s_(max), and    -   attempting to calculate a word {circumflex over        (v)}≡[{circumflex over (v)}_(s)(x₁),{circumflex over        (v)}_(s)(x₂), . . . ,{circumflex over (v)}_(s)(x_(μ))] by        correcting the word r _(s) according to the error syndrome        vector σ _(s) by means for an error correction algorithm adapted        to take into account erasures, and    -   calculate, where the above (s_(max)+1) correction attempts have        succeeded, for x=x₁,x₂, . . . ,x_(μ), the symbols {circumflex        over (v)}(x,y_(i)), where i=1, . . . ,λ(x), which are        respectively the estimated values of the transmitted symbols        corresponding to the received symbols r(x,y_(i)), by solving the        system of (s_(max)+1) equations:

${{{\hat{v}}_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{\hat{v}\left( {x,{y_{i}(x)}} \right)}}}},$for s=0, . . . , s_(max).

According to particular features applicable when said codewords v havebeen transmitted in the form of blocks of predetermined length, thedecoding device further comprises a reformatting device adapted to putsaid blocks of received data end to end after having removed, whereappropriate, the data added before transmission to complete certainblocks, and to identify in the flow of data so obtained sequences oflength n forming “received words” r.

The advantages of these devices are essentially the same as those of thecorresponding encoding and decoding methods described succinctly above.

The invention also relates to:

-   -   an apparatus for transmitting encoded digital signals,        comprising an encoding device as succinctly described above,        means for modulating said encoded digital signals, and a        modulated data transmitter,    -   an apparatus for recording encoded digital signals, comprising        an encoding device as succinctly described above, means for        modulating said encoded digital signals, and a modulated data        recorder,    -   an apparatus for receiving encoded digital signals, comprising a        decoding device as succinctly described above, means for        demodulating said encoded digital signals, and a modulated data        receiver,    -   an apparatus for reading encoded digital signals, comprising a        decoding device as succinctly described above, means for        demodulating said encoded digital signals, and a modulated data        reader,    -   a system for telecommunicating data in the form of blocks of        predetermined length comprising at least one apparatus for        transmitting encoded digital signals as succinctly described        above, and at least one apparatus for receiving encoded digital        signals as succinctly described above,    -   a system for mass storage comprising at least one apparatus for        recording digital signals as succinctly described above, at        least one recording medium, and at least one apparatus for        reading encoded digital signals as succinctly described above,    -   a non-removable data storage means comprising computer program        code instructions for the execution of the steps of any one of        the methods of encoding and/or decoding and/or communicating        succinctly described above,    -   a partially or wholly removable data storage means comprising        computer program code instructions for the execution of the        steps of any one of the methods of encoding and/or decoding        and/or communicating succinctly described above, and    -   a computer program containing instructions such that, when said        program controls a programmable data processing device, said        instructions lead to said data processing device implementing        one of the methods of encoding and/or of decoding and/or of        communicating succinctly described above.

The advantages provided by these transmitting, recording, receiving orreading apparatuses, these systems for telecommunication or massstorage, these means for data storage and this computer program areessentially the same as those provided by the methods of encoding,decoding and communicating according to the invention.

Other aspects and advantages of the invention will emerge from a readingof the following detailed description of particular embodiments, givenby way of non-limiting example. The description refers to theaccompanying drawings, in which:

FIG. 1 is a block diagram of a system for transmitting informationaccording to one embodiment of the invention,

FIG. 2 represents an apparatus for transmitting signals incorporating anencoder according to the invention, and

FIG. 3 represents an apparatus for receiving signals incorporating adecoder according to the invention.

FIG. 1 is a block diagram of a system for transmitting informationaccording to one embodiment of the invention.

The function of this system is to transmit information of any naturefrom a source 100 to a recipient or user 109. First of all, the source100 puts this information into the form of symbols belonging to acertain alphabet (for example bytes of bits in the case in which thesize q of the alphabet is 256), and transmits these symbols to a storageunit 101, which accumulates the symbols so as to form sets eachcontaining k symbols. Next, each of these sets is transmitted by thestorage unit 101 to a codeword computation unit 102 which constructs aword v orthogonal to the parity matrix H.

The methods of encoding and decoding according to the invention will nowbe illustrated, with the aid of a numerical example. Note that thisexample does not necessarily constitute a preferred choice of parametersfor the encoding or decoding. It is provided here only to enable theperson skilled in the art to understand the operation of the inventionmore easily.

An algebraic geometric code will thus be considered with length 1020 anddimension 918 defined as follows.

The alphabet of the symbols is constituted by the 2⁸ elements of theGalois field F₂₅₆ (i.e. by bytes of binary symbols) (this field may beconstructed with the aid of the polynomial (X⁸+X⁴+X³+X²+1) defined overF₂).

The following algebraic curve is then considered of genus g=24 of whichthe points (X y) are the solutions in F₂₅₆ of the equation with twounknownsf(X,Y)=X ¹⁷ −Y ⁴ −Y=0.   (1)This equation is said to be “attractive” since, for any value x taken byX in F₂₅₆, the corresponding equation in Y has λ(x)=4 distinct solutionswhich are also in F₂₅₆. Each of the 256 sets of 4 points having a commonvalue of X constitute an “aggregate” within the meaning of theinvention.

This curve thus comprises 1024 points of finite coordinates (as well asa point P∞ at infinity). Preferably, the code will be “shortened” byremoving from that set the four solutions of the equation for which x=0.The set of the remaining points P_(β) (where β=1, . . . ,1020) will thusconstitute the locating set, each point P_(β) serving to identify theβ^(th) element of any codeword. In accordance with the invention, bymeans of the number β, these points are classified such that the pointsof the same aggregate bear successive values of the number β (here fourdistinct values for each aggregate).

Next, the vector space L(mP∞) is considered of polynomials in X and Ywith coefficients in F₂₅₆ of which solely the poles are situated in P∞,and are of order less than or equal to m, where m is a strictly positiveinteger (it is thus a so-called “one-point” algebraic geometric code).This vector space, which is of dimension greater than or equal to(m−g+1) (equal if m≧2g−2), has a base constituted by the monomials(X^(i)Y^(j))), where i is a positive integer or zero, j is an integerbetween 0 and 3, and: 4i+17j≦m. This quantity W(ij)≦4i+17j is oftenreferred to as the “weight” of the monomial (X^(i)Y^(j)).

More generally, use could advantageously be made of an algebraicequationf(X,Y)≡X ^(b) +c Y ^(a) +Σc _(ij) X ^(i) Y ^(j)=0,   (2)where c (≠0 ) and the c _(ij) are elements of F_(q), a and b arestrictly positive prime integers, and where the sum only applies to theintegers i and j which satisfy ai+bj<ab.

For such an algebraic equation, only the monomials (X^(i)Y^(j)) wherethe exponent j of Y is strictly less than a, and the weight of such amonomial (X^(i)Y^(j)) is defined by W(ij)≡a i+b j. In this embodiment, amaximum weight m is set, such that the monomials may be classified inthe sets of monomialsT(j)≡{X ^(i) Y ^(j)|0≦i≦(m−bj)/a}  (3)for j≧0, j<a, and j<(m/b). The cardinal of this set T(j) is thus:t(j)=1+INT[(m−bj)/a]

In the case of equation (1), where a=4 and b=17, if for example we takem=125, then 4 sets of monomials are obtained:T(0)≡{X ^(i)|0≦i≦31}, with a maximum weight W(31,0)=124,T(1)≡{X ^(i) Y|0≦i≦27}, with a maximum weight W(27,1)=125,T(2)≡{X ^(i) Y ²|0≦i≦22}, with a maximum weight W(22,2)=122, andT(3)={X ^(i) Y ³|0≦i≦18}, with a maximum weight W(18,3)=123.The base of the vector space L(mP∞) then comprises: 32+28+23+19=102monomials.

Finally, a parity matrix H is defined in the following manner: themonomials M_(α)=X^(i)Y^(j) (of weight less than or equal to m, and wherethe maximum value j_(max) of j is strictly less than a) are arranged inany order as a function of i and j, and the element in line a (with α=1,. . . , n−k) and column β (with β=1, . . . , n) of the matrix H is equalto the monomial M_(α) evaluated at point P_(β) of the algebraic curve.These points P_(β) correspond to distinct solutions to the algebraicequation (2), but the person skilled in the art will decide, as afunction of the application envisaged, if it is useful to include allthe solutions in the locating set, or if on the contrary (as was done inthe numerical example above) it is appropriate instead to select aparticular solution. Whatever the case, each set of points (x,y_(p))(where p=1, . . . , λ(x)) of the locating set constitutes an aggregatewithin the meaning of the invention, and naturally λ(x)≦a.

It can thus be seen that the choice of the integers m and

${n - k} = {\sum\limits_{j = 0}^{j_{\max}}{t(j)}}$are related. Thus, in the numerical example considered:

-   -   n−k=102, and so k=918.

In this embodiment, it will moreover be required that the size chosenfor each aggregate respects the conditionλ(x)≦j_(max)+1 (x=x ₁ , x ₂ , . . . ,x _(μ)),in order to be able to implement the decoding method described furtheron.

The codeword calculation unit 102 constructs a word v, orthogonal to theparity matrix H so defined, on the basis of each set of k informationsymbols.

In this embodiment of the invention, the formatting unit 20 puts thewords v end to end so as to construct blocks of the length provided forby the transmission system.

Units 101, 102 and 20 can be considered to form conjointly an “encoder”30.

Encoder 30 transmits said blocks to a modulator 103. This modulator 103associates a modulation symbol with each group of M binary symbols(“bits”). It may for example be a matter of a complex amplitude definedaccording to the 4-QAM constellation or 8-DPSK or 16-QAM; in fact it maybe necessary, where appropriate, to limit (if permitted) the size of theconstellation in order to limit the number of items of data included ineach block of P elementary symbols (where, for example, P=96), since atransmission error affecting a whole block representing a high number ofcomponents ofvcould prove to exceed the correction capacity for thecode.

However, it is then necessary to know how to solve the practical problemwhich arises when the codewords are not exactly divisible into blocks,i.e. when the length of the codewords, expressed in bits, is not aninteger multiple of the MP bits represented in a block.

To illustrate this problem, consider again our example in which thecodewords have a length of 1020 bytes (corresponding to q=256), i.e.8160 bits, and take P=96. We find that 8160 is not divisible by 96M,whether M be equal to 2, to 3 or to 4. Take, for example, M=2: the bitsof a codeword will then “fill” 42 blocks each representing 192 bits, but96 bits will still remain to be processed, which only occupy half ablock.

Consider first of all the case in which the components of the codewordsare not continuously produced by the encoder 30. If a first block hasbeen commenced at the same time as a codeword, then the last block ishalf incomplete, since the second half of its contents, which could“accommodate” the start of the following codeword, is not yet available.This causes a delay in the transmission which may be bothersome for therecipient of the transmission.

To overcome this problem, in this embodiment, the last block iscompleted by some predetermined sequence, for example a series of zeros.In a variant form, 96 bits read from predetermined positions of thecodeword are repeated, for example the last 96 bits of the codewordrepresented in the first half of the last block. Next the blockcompleted in this way is transmitted without awaiting the followingcodeword.

These two ways of associating codewords, and blocks to be transmitted,can also be used in the case in which the components of the codewordsare continuously produced by the encoder 30. This is because one orother of these ways may conveniently be used by the receiver of thetransmission for the purposes of synchronization, since it suffices thereceiver to detect a data block of which the second half contains, inthe first embodiment, a predetermined sequence, or else, in the secondembodiment, a repetition of data already received in certainpredetermined positions.

Next, these modulation symbols are transmitted to a transmitter or to arecorder 104, which inserts the symbols in a transmission channel. Thischannel may for example be a wired transmission or wireless transmissionas is the case with a radio link. It may also correspond to storage on asuitable carrier such as a DVD or magnetic tape.

As explained above, there may advantageously be an OFDM transmittertransmitting a superposition of K (where, for example, K=48, or 64, or96) discrete Fourier transformations of the P elementary symbols.

This transmission, after having been affected by a “transmission noise”whose effect is to modify or erase certain of the transmitted data atrandom, arrives at a receiver or a reader 105. It may advantageously bean OFDM receiver which applies a discrete Fourier transformation,inverse to the previous one, to the complex amplitude received, so as toobtain P elementary symbols.

The receiver (or reader) 105 then transmits these elementary symbols tothe demodulator 106, which transforms them into symbols of the alphabetF_(q). These symbols of F_(q) are then transmitted to the reformattingunit 40.

The reformatting unit 40 commences by erasing the additional data fromeach successive block, for example series of zeros, which had been addedto the data blocks to “complete” those blocks, before transmitting them.Next, it identifies sequences of n successive symbols so obtained, eachof these sequences constituting a “received word”.

That word r is next processed by a unit 107, which implements an errorcorrecting algorithm, so as to provide an “associated codeword”.

Before presenting such an algorithm, it is useful to briefly reconsiderthe encoding according to the embodiment, described above, whichutilizes an algebraic equation (2).

A formulation for belonging to the code will be presented which isequivalent to the orthogonal relationship H·v ^(T)=0 , and which will bevery convenient for the decoding of the received words.

For every codewordv=[v(x ₁ ,y ₁(x ₁)), . . . v(x ₁ ,y _(λ) ₁ (x ₁)), . . . , v(x _(μ) ,y_(λ) _(μ) (x _(μ)))],for each aggregate attached to one of the values x₁,x₂, . . . ,x_(μ) ofx, there are constructed (j_(max)+1) “s-aggregate symbols”

${v_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{v\left( {x,{y_{i}(x)}} \right)}}}$for s=0, . . . ,j_(max) (it should be recalled that j_(max) is themaximum exponent of Y among the monomials M_(α)).

There are then constructed (j_(max)+1) “s-aggregate words”v _(s) ≡[v _(s)(x ₁),v _(s)(x ₂), . . . ,v _(s)(x _(μ))],of length μ, with the use of which the condition of belonging to thecode is reduced to the set of (j_(max)+1) equations:H ^(t(s)) ·v _(s) ^(T)=0,where, by definition,

$\begin{matrix}{H^{t} \equiv {\begin{bmatrix}1 & 1 & \cdots & 1 \\x_{1} & x_{2} & \cdots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \cdots & x_{\mu}^{t - 1}\end{bmatrix}.}} & (4)\end{matrix}$

The advantage of this formulation is that the matrix H^(t) of equation(4) is a Vandermonde matrix defined over F_(q); consequently, ifH^(t(s)) is considered as a parity matrix defining codewords v _(s), wehave here, for each value of s, a Reed-Solomon code, for which decodingalgorithms are known which are simple as well as providing goodperformance; for example the Berlekamp-Massey algorithm could be usedfor locating erroneous symbols, followed by the Forney algorithm for thecorrection of those erroneous symbols.

More specifically, according to one embodiment of the invention, it ispossible to proceed as follows to correct a received wordr≡[r(x ₁ ,y ₁(x ₁), . . . , r(x ₁ ,y _(λ) ₁ (x ₁)), . . . , r(x _(μ) ,y_(λ) _(μ) (x _(μ)))](of length n) taking into account erasures, i.e. information accordingto which the value of the symbol in a particular position in thereceived word is uncertain.

It is assumed that an integer s_(max) satisfyingλ(x)−1≦s _(max) ≦j _(max)for all x=x₁,x₂, . . . ,x_(μ), whose utility will appear further on, hadbeen chosen before carrying out the following steps. By default, it isalways possible to take s_(max)=j_(max)

Firstly, for s=0, . . ,s_(max):

-   -   calculation is made of the word        r _(s) ≡[r _(s)(x ₁), r _(s)(x ₂), . . . ,r _(s)(x _(μ))],        of length μ, in which, for x=x₁,x₂, . . . ,x_(μ), each symbol

${r_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{r\left( {x,{y_{i}(x)}} \right)}}}$is erased if at least one of the symbols r(x,y_(i)(x)) is considered asdoubtful by the receiver, and

-   -   calculation is made of the error syndrome vector σ _(s)≡H^(t(s))        r _(s) ^(T), where

${H^{t} \equiv \begin{bmatrix}1 & 1 & \cdots & 1 \\x_{1} & x_{2} & \cdots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \cdots & x_{\mu}^{t - 1}\end{bmatrix}},$and where t(s) designates the number of monomials M_(α)=X^(i) Y^(j)having j=s.

Next, an attempt is made to calculate a word {circumflex over (v)}₀≡[{circumflex over (v)}₀(x₁),{circumflex over (v)}₀(x₂), . . .,{circumflex over (v)}₀(x_(μ))] by correcting the word r ₀ according tothe error syndrome vector σ ₀ by means for an error correction algorithmadapted to take into account erasures, such as the combination of theBerlekamp-Massey and Forney algorithms.

If that algorithm has not been able to provide a corrected word, it isthereby concluded that the means implemented do not enable that receivedword to be corrected, due to too high a number of transmission errors;the operations following (for example, replacing the word with apredetermined word such as the zero word) depend on the applicationsenvisaged for the decoding method.

If, on the other hand, the correction algorithm is capable of proposinga word {circumflex over (v)}₀, then for all x such that {circumflex over(v)}₀(x)≠r₀(x), the symbols r_(p)(x) are erased for p=1, . . . ,s_(max).

Next, an attempt is made to calculate a word {circumflex over (v)}₁≡[{circumflex over (v)}₁(x₁),{circumflex over (v)}₁(x₂), . . .,{circumflex over (v)}₁(x_(μ))] by correcting the word r ₁ according tothe error syndrome vector σ ₁ by means for an error correction algorithmadapted to take into account erasures, such as the combination of theBerlekamp-Massey and Forney algorithms.

If that algorithm has not been able to provide a corrected word, it isthereby concluded that the means implemented do not enable that receivedword to be corrected, due to too high a number of transmission errors;the operations following (for example, replacing the word with apredetermined word such as the zero word) depend on the applicationsenvisaged for the decoding method.

If, on the other hand, the correction algorithm is capable of proposinga word {circumflex over (v)}₁, for all x such that {circumflex over(v)}₁(x)≠r₁(x), the symbols r_(p)(x) are erased for p=2, . . .s_(max).

The correction of the words r _(s) is continued in similar manner (ifpossible) up to s=s_(max).

Finally, where the above (s_(max)+1) correction attempts have succeeded,calculation is made, for x=x₁,x₂, . . . ,x_(μ), the symbols {circumflexover (v)}(x,y_(i)), where i=1, . . . ,λ(x), which are respectively theestimated values of the transmitted symbols corresponding to thereceived symbols r(x,y_(i)), by solving the system of (s_(max)+1)equations:

$\begin{matrix}{{{\hat{v}}_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{\hat{v}\left( {x,{y_{i}(x)}} \right)}}}} & (5)\end{matrix}$for s=0, . . . ,s_(max).

For a given x, is it always possible to solve this system of equations?Note first of all that this system has the matrix

$\begin{matrix}{\begin{bmatrix}1 & 1 & \cdots & 1 \\y_{1} & y_{2} & \cdots & y_{\lambda} \\\vdots & \vdots & \vdots & \vdots \\y_{1}^{s_{\max}} & y_{2}^{s_{\max}} & \cdots & y_{\lambda}^{s_{\max}}\end{bmatrix},} & (6)\end{matrix}$where the symbols y₁,y₂, . . . , y_(λ) refer to the aggregate consideredand are all distinct taken in pairs: it is thus a Vandermonde matrix.Moreover, as indicated above, λ(x)−1≦s_(max)≦j_(max)<a.

If λ(x)=s_(max)+1, matrix (6) is square, and the inversion of system (5)produces one and only one solution.

If, on the other hand, λ(x)≦s_(max), system (5) is “over determined”. Inthis case, it is possible for example to use the λ(x) first equations ofsystem (5) to calculate the {circumflex over (v)}(x,y_(i)) symbols, andto use the (s_(max)+1−λ(x)) remaining equations, when one or more ofthem is not satisfied, to detect wrongly estimated values for thes-aggregate symbols {circumflex over (v)}_(s)(x). It can thus be seenthat, in the context of the decoding algorithm according to theinvention, the correction of the symbols belonging to small aggregatesmay be rendered more reliable than that of the symbols belonging tolarge aggregates. Consequently, the method of decoding according to theinvention gives the possibility of “unequal protection” against errors,which is desirable in certain applications as is well known to theperson skilled in the art.

Once the correction has been terminated, the associated codeword{circumflex over (v)} is transmitted to an information symbolscalculation unit 108, which extracts from it k information symbols byperforming the inverse of the transformation implemented by unit 102.Finally, these information symbols are supplied to their recipient 109.

Units 40, 107 and 108 can be considered to form conjointly a“decoder”10.

The block diagram of FIG. 2 represents, very schematically, a device 48for transmitting signals incorporating an encoder 30.

This device 48 comprises a keyboard 911, a screen 909, a source ofexternal information 100, a modulator 103 and a transmitter of modulateddata 104, conjointly connected to input/output ports 903 of an encoder30 which is implemented here in the form of a logic unit.

The encoder 30 comprises, connected together by an address and data bus902:

-   -   a central processing unit 900,    -   a random access memory RAM 904,    -   a read only memory 905, and    -   said input/output ports 903.

Each of the elements illustrated in FIG. 2 is well known to a personskilled in the art of microcomputers and transmission systems and, moregenerally, of information processing systems. These known elements aretherefore not described here. It should be noted, however, that:

-   -   the information source 100 could, for example, be an interface        peripheral, a sensor, a demodulator, an external memory or other        information processing system (not shown), and could for example        supply sequences of signals representing speech, service        messages or multimedia data in particular of the IP or ATM type,        in the form of sequences of binary data, and    -   the transmitter 104 is adapted to transmit signals of the OFDM        system.

The random access memory 904 stores data, variables and intermediateprocessing results, in memory registers bearing, in the description, thesame names as the data whose values they store. It should be noted, inpassing, that the word “register” designates, throughout the presentdescription, a memory area of low capacity (a few items of binary data)and equally a memory area of large capacity (making it possible to storea complete program) within a random access memory or read only memory.

The random access memory 904 contains in particular the followingregisters:

-   -   a register “information_symbols” in which the information        symbols belonging to F_(q) are stored,    -   a register “code_words”, in which are stored the codewords v,        and    -   a register “data_blocks” in which are stored the data blocks        before they are submitted to the modulator 103.

The read only memory 905 is adapted to store, in registers which, forconvenience, have the same names as the data which they store:

-   -   the operating program of the central processing unit 900, in a        register “program”,    -   the cardinal of the Galois field F_(q) serving as alphabet for        the code used, in a register “q”,    -   the number of information symbols serving to construct a        codeword, in a register “k”,    -   the length of the stored codewords, in a register “n”,    -   the parity matrix of the code, in a register “H”, and    -   the length of the data blocks transmitted, in a register        “block_length”.

The block diagram of FIG. 3 represents, very schematically, a signalreceiving device 70 incorporating the decoder 10.

This apparatus 70 comprises a keyboard 711, a screen 709, a recipient ofexternal information 109, a modulated data receiver 105 and ademodulator 106, conjointly connected to input/output ports 703 of thedecoder 10 which is produced here in the form of a logic unit.

The decoder 10 comprises, connected together by an address and data bus702:

-   -   a central processing unit 700,    -   a random access memory (RAM) 704,    -   read only memory (ROM) 705; and    -   said input/output ports 703.

Each of the elements illustrated in FIG. 3 is well known to a personskilled in the art of microcomputers and transmission systems and, moregenerally, of information processing systems. These known elements aretherefore not described here. It should be noted, however, that:

-   -   the information recipient 109 could, for example, be an        interface peripheral, a display, a modulator, an external memory        or other information processing system (not shown), and could be        adapted to receive sequences of signals representing speech,        service messages or multimedia data in particular of the IP or        ATM type, in the form of sequences of binary data, and    -   the receiver 105 is adapted to receive signals of the OFDM        system.

The random access memory 704 stores data, variables and intermediateprocessing results, in memory registers bearing, in the description, thesame names as the data whose values they store. The random access memory704 contains in particular the following registers:

-   -   a register “data_blocks” in which the data blocks issuing from        the demodulator 106 are stored,    -   a register “received_words”, in which the received words r are        stored,    -   a register “associated_words” in which, the case arising, the        words {circumflex over (v)} resulting from the correction of r        are stored, and    -   a register “information_symbols” in which the information        symbols calculated by the unit 108 are stored.

The read only memory 705 is adapted to store, in registers which, forconvenience, have the same names as the data which they store:

-   -   the operating program of the central processing unit 700, in a        register “program”,    -   the length of the data blocks transmitted, in a register        “block_length”,    -   the cardinal of the Galois field F_(q) serving as alphabet for        the code used, in a register “q”,    -   the length of the stored codewords, in a register “n”,    -   the number of information symbols serving to construct a        codeword, in a register “k”, and    -   the length of the parity matrix of the code, in a register “H”.

It should be noted that, in certain applications, it will be convenientto use the same computer device (functioning in multitask mode) for theexchange, that is to say both the transmission and reception, of signalsaccording to the invention; in this case, the units 10 and 30 will bephysically identical.

To finish with, it should be noted that, when the code relies on aalgebraic equation (2) and when the channel considered produces botherror bursts and independent errors in relation to the symbols (and notin relation to the aggregates), it is advisable to use two decoders inparallel: the first will use the decoding algorithm according to theinvention, and the second will use any known algorithm appropriate tocorrect, for an algebraic geometric code, the errors and/or erasures ofsymbols individually (for example the algorithm known as that of “Fengand Rao”). If a single of these two algorithms is capable of providingan estimated value of the transmitted word, or if both algorithmsprovide the same estimated value, it will be natural to accept thatestimated value; on the other hand, it those algorithms provide twodifferent estimated values, it will be necessary to provide a method ofarbitration taking into account, preferably, the characteristics of thechannel considered.

It will also be noted that, even if an application of the invention tothe transmission of data over a radio channel has been described aboveby way of example, the methods according to the invention may equally beapplied to mass storage, for example within the same computer; in thatcase, for example, unit 104 may be a recorder and unit 105 a reader ofdata on magnetic or magnetic-optic disk. Such an application is all themore appropriate since certain recording media of that type are subjectto error bursts.

1. A method of encoding information symbols, comprising a step of:encoding the information symbols by calculating codewords, wherein eachcodeword v has a length n, being orthogonal to a parity matrix H andbeing associated with every block of k information symbols belonging toa Galois field F_(q), wherein q is an integer greater than 2 and equalto a power of a prime number, wherein element H_(αβ) at position (α,β)of said parity matrix H, with α varying from 1 to n-k and β varying from1 to n, is equal to the value taken by the monomial M_(α) at the pointP_(β), and wherein the monomials M_(α)≡X^(i)Y^(i), where the integers iand j are positive or zero, are such that if, among those monomials,there is one at i>0 and arbitrary j, then there is also one at (i-1) andj, and if there is one at arbitrary i and j>0, then there is also one ati and (j-1), and said points P_(β) are pairs of non-zero symbols ofF_(q) which have been classified by aggregates as follows when β variesfrom 1 to n:(x₁,y₁(x₁)),(x₁,y₂(x₁)), . . . ,(x₁,y_(λ) ₁(x₁));(x₂,y₁(x₂)),(x₂,y₂(x₂)), . . . , (x₂,y_(λ) ₂ (x₂)); . . .;(x_(μ),y₁(x_(μ))),(x_(μ),y₂(x_(μ))), . . . ,(x_(μ,y) _(λ) _(μ)(x_(μ))), where μ denotes the number of aggregates and, for any ibetween 1 and μ, λ_(i) denotes the number of pairs with x_(i) as a firstelement.
 2. An encoding method according to claim 1, wherein successivecodewords vare put end to end so as to form a continuous chain of datato transmit, and the chain of data is divided up into blocks of apredetermined length.
 3. An encoding method according to claim 2, inwhich the codewords are not exactly divisible into blocks, and eachincomplete block is completed with a predetermined arbitrary sequence ofdata.
 4. An encoding method according claim 2, in which the codewordsare not exactly divisible into blocks, and each incomplete block iscompleted by copying the value of the data situated at a predeterminednumber of positions of the corresponding codeword equal to the number ofitems of data to complete.
 5. A method of encoding according to claim 4,in which the copied data is situated in the same incomplete block.
 6. Anencoding method according to any one of the preceding claims, in whichthe points P_(β) form part of the solutions to an algebraic equationX ^(b) +cY ^(a) +Σc _(ij) X ^(i) Y ^(i)=0 where c is non-null and thec_(ij) values are elements of F_(q), αand b are strictly positivemutually prime integers, and where the sum only applies to the integersi and j which satisfy αi+bj<αb, and the maximum power j_(max) of Y inthe monomials M_(α), is strictly less than α.
 7. An encoding methodaccording to claim 6, in which the monomials M_(α)=X^(i)Y^(i) satisfy:αi+bj≦m, where m is a predetermined strictly positive integer, andλ(x)≦j _(max)1 for all x=x₁,x₂, . . . ,x_(μ).
 8. A method of decodingreceived data resulting from a transmission of data encoded according toclaim 7, comprising the steps of: receiving a wordr≡[r(x ₁ ,y ₁(x ₁)), . . . ,r(x₁ ,y _(λ) ₁ (x ₁)), . . . ,r(x _(μ) ,y_(λ) _(μ) (x _(μ)))], of length n; determining an integer s_(max)satisfyingλ(x)−1≦s _(max) ≦j _(max) for all x=x ¹ ,x₂, . . . ,x_(μ); calculating,for s=0, . . . ,s_(max) the wordr _(s)≡[r _(s)(x ₁),r _(s)(x ₂), . . . ,r _(s)(x _(π))], of length μ, inwhich, for x=x₁,x₂, . . .,x_(μ), a symbol${r_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{r\left( {x,{y_{i}(x)}} \right)}}}$is erased if at least one of the symbols r(x,y_(i)(x)) is itself erased;calculating an error syndrome vector σ_(s)≡H^(t(s)) r _(s) ^(T), where${H^{t} \equiv \begin{bmatrix}1 & 1 & \cdots & 1 \\x_{1} & x_{2} & \cdots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \cdots & x_{\mu}^{t - 1}\end{bmatrix}},$ and where t(s) designates a number of monomials M_(α=X)^(i)Y^(j) having j=s; attempting to calculate a word {circumflex over(v)} ₀≡[{circumflex over (v)}₀(x₁),{circumflex over (v)}(x₂), . . .,{circumflex over (v)}₀(x₈₂ )] by correcting the word r₀ according tothe error syndrome vector σ ₀ by means of an error correction algorithmadapted to take into account erasures; erasing, for s=1, . . . ,s_(max),where the preceding error correction attempt has succeeded, for all xsuch that {circumflex over (v)}_(s−1)(x)≠r_(s−1)(x), the symbolsr_(p)(x) for p=s, . . . ,s_(max); attempting to calculate a word{circumflex over (v)} _(s)≡[{circumflex over (v)}_(s)(x₁), {circumflexover (v)}_(s)(x₂), . . . ,{circumflex over (v)}_(s)(x_(μ))]by correctingthe word r _(s) according to the error syndrome vector σ _(s) by meansof an error correction algorithm adapted to take into account erasures;calculating, where the correction attempts have succeeded, for x=x₁, x₂,. . . ,x_(μ), the symbols {circumflex over (v)}(x,y_(i)), where i=1, . .. ,λ(x), which are respectively the estimated values of the transmittedsymbols corresponding to the received symbols r(x,y_(i)), by solving thesystem of (s_(max)+1) equations:${{{\hat{v}}_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{\hat{v}\left( {x,{y_{i}(x)}} \right)}}}},{{{for}\mspace{14mu} s} = 0},\ldots\mspace{11mu},{s_{\max}.}$9. A device for decoding received data resulting from a transmission ofdata encoded according to claim 7, comprising an error correction unitadapted to: receive a wordr≡[r(x ₁ ,y ₁(x ₁)), . . . ,r(x₁ ,y _(λ) ₁ (x ₁)), . . . ,r(x _(μ) ,y_(λ) _(μ) (x _(μ)))], of length n;λ(x)−1≦s _(max) ≦j _(max) for all x=x₁,x₂, . . . ,x_(μ);to: calculate,for s=0, . . . the wordr _(s) ≡[r _(s)(x ₁), r _(s)(x ₂), . . . ,r _(s)(x _(μ))], of length μ,in which, for x=x₁,x₂, . . . ,x_(μ), each symbol${r_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{r\left( {x,{y_{i}(x)}} \right)}}}$is erased if at least one of the symbols r(x,y_(i)(x)) is itself erased;calculate the error syndrome vector σ _(s)=H^(t(s)) r _(s) ^(T), where${H^{t} \equiv \begin{bmatrix}1 & 1 & \cdots & 1 \\x_{1} & x_{2} & \cdots & x_{\mu} \\\vdots & \vdots & \vdots & \vdots \\x_{1}^{t - 1} & x_{2}^{t - 1} & \cdots & x_{\mu}^{t - 1}\end{bmatrix}},$ and where t(s) designates the number of monomialsM_(α)=X^(i) Y^(j) having j=s; attempt to calculate a word {circumflexover (v)} ₀≡[{circumflex over (v)}₀(x₁),{circumflex over (v)}₀(x₂), . .. , {circumflex over (v)}₀(x_(μ))] by correcting the word r ₀ accordingto the error syndrome vector σ ₀ by means of an error correctionalgorithm adapted to take into account erasures; erase, for s=1, . . .,s_(max), where the preceding error correction attempt has succeeded,for all x such that {circumflex over (v)}_(s−1)(x)≠r_(s−1)(x), thesymbols r_(p)(x) for p=s, . . . , s_(max); attempt to calculate a word{circumflex over (v)}≡[{circumflex over (v)}_(s)(x₁),{circumflex over(v)}_(s)(x₂), . . . ,{circumflex over (v)}_(s)(x_(μ))] by correcting theword r _(s) according to the error syndrome vector σ _(s) by means of anerror correction algorithm adapted to take into account erasures; andcalculate where the correction attempts have succeeded, for x=x₁,x₂, . .. ,x_(μ), the symbols {circumflex over (v)}(x, y_(i)), where i=1, . . ., λ(x), which are respectively the estimated values of the transmittedsymbols corresponding to the received symbols r(x,y_(i)), by solving thesystem of (s_(max)+1) equations:${{{\hat{v}}_{s}(x)} \equiv {\sum\limits_{i = 1}^{\lambda{(x)}}\;{\left\lbrack {y_{i}(x)} \right\rbrack^{s}{\hat{v}\left( {x,{y_{i}(x)}} \right)}}}},{{{for}\mspace{14mu} s} = 0},\ldots\mspace{11mu},{s_{\max}.}$10. An encoding method in which a parity matrix of code is obtained bypost-multiplying a parity matrix according to any one of claims 1-5 by anon-singular diagonal matrix.
 11. A method of encoding informationsymbols, comprising a step of calculating codewords in which a codewordv ^(π), of length n and orthogonal to a parity matrix H^(π) isassociated with every block of k information symbols belonging to aGalois field F_(q), where q is an integer greater than 2 and equal to apower of a prime number, and a step in which a predetermined permutationπ is applied to the components of v ^(π) so as to obtain words v adaptedto be transmitted, wherein said parity matrix H^(π) is obtained byapplying the permutation π⁻¹ to the columns of a parity matrix accordingto any one of claims 1-5.
 12. A method of decoding received data, themethod comrising: decoding the data encoded according to any one ofclaims 1-5.
 13. A fixed data storage device, comprising program codeinstructions executable by a computer for performing the steps of adecoding method according to claim
 12. 14. A partially or totallyremovable data storage device, comprising computer program codeinstructions executable by a computer for performing the steps of adecoding method according to claim
 12. 15. A computer program product,containing instructions such that, when said program controls aprogrammable data processing device, said instructions cause said dataprocessing device to implement a decoding method according to claim 12.16. A device for decoding received data resulting from a transmission ofdata encoded according to any one of claims 1 to 5, comprising: an errorcorrection unit adapted to correct transmission errors of the encodeddata, and a unit for calculating information symbols.
 17. A decodingdevice according to claim 16 or in which said codewords v have beentransmitted in the form of blocks of predetermined length, furthercomprising a reformatting device adapted to put said blocks of receiveddata end to end after having removed, where appropriate, the data addedbefore transmission to complete certain blocks, and to identify in theflow of data so obtained sequences of length n forming received words r.18. Apparatus for receiving encoded digital signals, comprising adecoding device according to claim 16, means for demodulating theencoded digital signals, and a modulated data receiver.
 19. Apparatusaccording to claim 18, in which the demodulation is in accordance withOFDM.
 20. Apparatus for reading encoded digital signals, comprising adecoding device according to claim 16, means for demodulating theencoded digital signals, and a modulated data reader.
 21. A method ofcommunicating data in the form of blocks of predetermined length,comprising the steps of: encoding the data to transmit, in accordancewith the method of encoding according to any one of claims 1-5;transmitting the encoded data blocks by OFDM; and decoding the receiveddata.
 22. A device for encoding information symbols comprising: anencoder configured to encode the information symbols by calculatingcodewords, wherein each codeword v has a length n, being orthogonal to aparity matrix H and being associated with every block of k informationsymbols belonging to a Galois field F_(q), wherein q is an integergreater than 2 and equal to a power of a prime number, wherein elementH_(αβ) at position (α,β) of the parity matrix H, with α varying from 1to n-k and β varying from 1 to n, is equal to the value taken bymonomial M_(α) at a point P_(β), and wherein the monomialsM_(α)≡X^(i)Y^(j), where the integers i and j are positive or zero, aresuch that if, among those monomials, there is one at i>0 and arbitraryj, then there is also one at (i−1) and j, and if there is one atarbitrary i and j>0, then there is also one at i and (j−1), and thepoints P_(β) are pairs of non-zero symbols of F_(q) which have beenclassified by aggregates as follows when β varies from 1 to n:(x₁,y₁(x₁)),(x₁,y₂(x₁)), . . . ,(x₁,y_(λ) ₁(x₁));(x₂,y₁(x₂)),(x₂,y₂(x₂)), . . . , (x₂,y_(λ) ₂ (x₂)); . . .;(x_(μ),y₁(x_(μ))),(x_(μ),y₂(x_(μ))), . . . ,(x_(μ,y) _(λ) _(μ)(x_(μ))), where μ denotes the number of aggregates and, for any ibetween 1 and μ, λ_(i) denotes the number of pairs with x_(i) as a firstelement.
 23. An encoding device according to claim 22, furthercomprising a formatting unit adapted to put the successive words v endto end so as to form a continuous chain of data to transmit, and todivide up that chain of data into blocks of predetermined length.
 24. Anencoding device according to claim 23, in which the codewords are notexactly divisible into blocks, and said formatting unit is capable ofcompleting each incomplete block with a predetermined arbitrary sequenceof data.
 25. An encoding device according claim 23, in which thecodewords are not exactly divisible into blocks, and said formattingunit is capable of completing each incomplete block by copying the valueof the data situated at a predetermined number of positions of thecorresponding codeword equal to the number of items of data to complete.26. An encoding device according to claim 25, in which the copied datais situated in the same incomplete block.
 27. Apparatus for transmittingencoded digital signals , comprising an encoding device according to anyone of claims 22 to 26, means for modulating said encoded digitalsignals, and a modulated data transmitter.
 28. An apparatus according toclaim 27, in which said modulation is in accordance with OFDM.
 29. Asystem for telecommunicating data in the form of blocks of predeterminedlength, comprising: at least one apparatus for transmitting encodeddigital signals according to claim 27; and at least one apparatus forreceiving encoded digital signals comprising: a modulated data receiver,means for demodulating the encoded digital signals, a unit, adapted tocalculate information symbols, and an error correction unit, adapted tocoffect transmission errors of the encoded data.
 30. An apparatus forrecording encoded digital signals, comprising an encoding deviceaccording to any one of claims 22 to 26, means for modulating saidencoded digital signals, and a modulated data recorder.
 31. A system formass storage, comprising: at least one apparatus for recording encodeddigital signals according to claim 30; at least one recording medium;and at least one apparatus for reading encoded digital signalscomprising: a modulated data reader, means for demodulating the encodeddigital signals, a unit adapted to calculate information symbols, and anerror correction unit adapted to correct transmission errors of theencoded data.